This application relates to and incorporates herein by reference Japanese Patent Application No. 11-231528 filed on Aug. 18, 1999.
The present invention relates to a multi-module system having a plurality of process modules as processing units for achieving particular functions, and a communication manager provided among and enabling linked operation of the plurality of modules.
Various types of human-machine interfaces (HMI) enabling a user to interact with a machine of some type to access and exchange information have been in use for many years. Interfaces enabling more intuitive or natural interaction have also been developed recently. Examples of these are the interactive man-machine interface (MMI) now available on some motor vehicle navigation systems. For example, when the user requests a typical interactive navigation system to display a road map, a task that can be accomplished by pressing a button or speaking to the system, the navigation system responds by asking the user for the desired location in the map to be displayed. If the user then indicates the current location, for example, the navigation system displays a map of the area surrounding the current location on the display.
Some of the functions that are required in this interactive navigation system include speech recognition for recognizing and interpreting the content spoken by the user, a speech synthesis or generation function for speaking to the user, a key detection function for recognizing what keys or buttons the user operates, an interaction manager for responding naturally to the user, and a display function for actually displaying a map or other information to the user. The program controlling this interactive system is generally written with separate modules for the various functions.
A xe2x80x9cmodulexe2x80x9d is defined as a programmed unit for processing and handling a specific function. A module can also be thought of as a device having a CPU for running the processing program rather than as the processing program itself. In this case, a module can be considered a hardware unit. It can even be a product including a computer system. On the other hand, if the overall system includes a CPU, for example, and uses the CPU to run the processing program, the module is conceptually a unit of software.
Certain expressions used herein are also specifically defined. Specifically, expressions such as xe2x80x9cthe module does something)xe2x80x9d where the module is the subject of the predicate means that a CPU in the module or the system runs the processing program of the particular module. In addition, xe2x80x9cthe module operatesxe2x80x9d and similar expressions mean that the processing program of the module is run by the CPU.
In JP-A-10-3392, JP-A-11-15680, and JP-A-10-69391, a communication manager provided separately from any module performs a number of communication processes which are normally accomplished in a module. This simplifies the processing program of the module, makes it easier to design the processing program, or enables the communication manager to manage the operation of each module.
However, module design becomes more difficult when designing the module linking operation required for an interactive system is considered, particularly if the linking operation is to achieve natural, intuitive interaction.
For example, in designing a system in which a module A operates according to information from three other modules B, C and D, information from each of the three modules B, C and D is passed separately to the module A through the communication manager. That is, modules B, C and D separately pass information required for the operation of the module A to module A with the three modules communicating with the module A at different times. The processing program of the module A must therefore be designed to accommodate the separate data transmission timing of each of the three modules B, C and D. For example, if data is sent to the module A from each of the modules in the sequence B, C and D, data from the modules B and C must be temporarily stored in a memory until data from the module D is also received. Then the data of the module B and C is read from the memory so that a decision process can be performed using information from all the three modules.
JP-A-11-15680 in particular teaches a technique for controlling each module using a multiple-process manager (communication manager). Designing a processing program of a module is made easier if the operation of each module is centrally managed by this type of communication manager. However, this requires a manager process in the communication manager for considering the data transmission timing from each module. If the overall system is considered, this means that designing the communication manager actually becomes more difficult.
Furthermore, a process that achieves this type of linking operation is dependent upon the processing programs of the other modules, and it is therefore difficult to change a module or add a new module.
It should be noted that these problems are not unique to the human-machine interface of an interactive system, for example, and are confronted when a module linking operation is sought in any module system.
Therefore, it is an object of the present invention to simplify designing, modifying, and adding modules that are part of the linked operation of plurality of modules.
According to the present invention, a multi-module system comprises a plurality of modules for achieving respective particular functions and a communication manager provided among the plurality of modules for achieving linked operation of the plurality of modules. The communication manager includes a memory, an interface and a processor. The memory stores in a specific format operating information which is defined as profiles necessary for linked operation of the modules. The interface enables access from the plurality of modules. The processor accomplishes, based on a request sent from each module through the interface, a referencing process for reading the stored operating information from the memory and passing the operating information to the module, and an updating process for updating the operating information stored in the memory according to the operating information from the module. Each module requests the communication manager to read the operating information by way of the interface, operates according to the operating information provided from the communication manager in response to a read request, and updates the operating information through the interface. The communication manager thus enables the linked operation among the modules based on continuously updated profiles.